aar中打开【我的电脑】和【控制面板】的代码
感谢一鹤jacen在vip群里提供的代码:
界面中用线程控件操作摄像头(threadCtrl)
以前从没用过这个线程控件, 这次因为用到了摄像头,常规的写法如果界面中有两个摄像头窗口,那么就需要开启多线程来分别操作。
嗯,我之前就是这么做的,这个时候就有个问题了,如果也使用了前面写的那个plus拖动摄像头区域的功能,那么代码是非常多的,两个都这样做的话,代码量非常恐怖。
关键是这样的话不利于管理。
那么这个线程控件刚好可以解决这个问题,
工程中新建一个窗体A,里面拖出一个plus控件,然后把之前写的halcon摄像头那个复制到这个里面。 然后在主界面中拖动出一个custom控件,打开这个cusntom代码编辑模式,手动修改里面的代码,
模拟鼠标拖动plus前景图片调整图像显示区域
整合到halcon摄像头里去了,plus自绘图像和摄像头图像区域设置,方向刚好相反的,
顺手加了摄像头的一些东西。
模拟鼠标拖动plus前景图片调整图像显示区域
基本算是花了一天时间实现的
准备用于摄像头图像显示区域调整上面,这个是简易版功能
import win.ui; /*DSG{{*/ var winform = w动态创建控件的时候绑定事件的方法
今天在论坛看到有人想要实现动态创建控件,并且这些事件想利用一个方法解决。
上面回复有好多中办法了,我这里也想到一种办法。
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469) winform.add() /*}}*/ var btTab = { cls="button"; text="button"; left=173; top=40; right=344; btabs中新增的adjust()和getpos()的使用,tabs选项卡之间函数的相互调用
忘了记录一下那个网址打开的界面的代码:
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=1097;bottom=570;bgcolor=16777215;parent=...) winform.add() /*}}*/ //创建web窗体 import web.form; var wb = web.form( winform, , , ,true/*securityTrusted*/ ); wb.noScriptabs中新增的adjust()和getpos()的使用,tabs选项卡之间函数的相互调用
完整的作业工程下载:
https://pan.baidu.com/s/1nuZYRvN
名字就是:作业v0.2
tabs中新增的adjust()和getpos()的使用,tabs选项卡之间函数的相互调用
jacen的作业要求:有选项卡界面之间的通信....
第一时间想到的就是winform.func() 这样的,但是选项卡之间应该怎么通信?
两个任意的选项卡貌似只有mainform这个是一致的,其他都是独立的,而且jacen说界面之间不应该相互直接干扰...
那么只好用mainfrom做个中间人,其他人都和它通话,它在转发给通话方,额。貌似效率低点,但是好理解。
定一个中转站:
//全局访问中转站 mainForm.childGlobalFun = ftabs中新增的adjust()和getpos()的使用,tabs选项卡之间函数的相互调用
编写的过程中,希望点击【+】号直接能够像浏览器一样输入网址,然后自动打开这个网址,这样就更像个浏览器了。。。。
所以我在+号点击事件里添加:
import win.inputBox; var stipWidth = headTabs.strips[1].width; mainForm.plus.oncommand = function(id,event){ var inputForm = win.inputBox(mainForm) var retStr = inputForm.doModaltabs中新增的adjust()和getpos()的使用,tabs选项卡之间函数的相互调用
jacen大人新增的这两个函数,非常的实用。
adjust()是tabs选项卡自适应, 这样如果你新增了或者删除了某一选项卡,就会自动调用这个函数,来达到一些目的,比如:
这个+号,要一直贴边,这个功能可以利用adjust()实现
先定义这个函数要实现的功能:
aardio调用halcon采集摄像头
如果调用多个摄像头,必须开线程:
修改默认的tabs高级选项卡项的close标签功能
完整的工程:
import win.ui; /*DSG{{*/ mainForm = win.form(text="popdes第一阶段作业";right=1097;bottom=610;bgcolor=8421376) mainForm.add( custom={cls="custom";text="custom";left=0;top=35;right=1098;bottom=606;bgcolor=16777215;db=1;dl=1;dr=1;dt=1;z=4}; plus={cls="plus";t修改默认的tabs高级选项卡项的close标签功能
去win.ui.tabs库里面可以看到
上面就是原
aardio调用halcon采集摄像头
调用videocapX.ocx控件遇到的问题
貌似这个是vb的标准控件,会在vs的控件栏里出现这个控件图标,这种的aar应该怎么调用
我今天给我们公司用vb.net的人说,他们说这个是标准控件,会在vs控件栏生成一个标准摄像头控件,然后拖上去就可以了,感觉和aar的自定义控件很像啊
这个com控件里面用的是dispinterface接口
网上搜了下,貌似说是利用事件驱动,接口有点区别
调用VB6生成的com组件的一个记录
更新:
找到问题了, 不是上面说的任何问题,是因为在c:/windows/system32/目录下少复制了一个dll,这里需要5个dll,而我只复制了4个自认为需要的。
调用videocapX.ocx控件遇到的问题
最近准备用到摄像头,根据以前论坛上的那个貌似有时候摄像头显示不了,下载这个控件的示例发现每次能完美解决, 所以想要封装下这个控件。
我声明了个库:videoX.aardio
import util.metaProperty; class videoX{ ctor(winform){ this = winform.createEmbed("{912FB007-DD9A-11D3-BD8D-DAAFCB8D9378}"); }; a调用VB6生成的com组件的一个记录
VB6生成的COM组件貌似和其他的有一点区别。。。(我猜)
这次试验成功调用了一直导致困惑的这个com组件, 试验步骤如下:
1,重装了win7 32位原版系统
2,下载了最新的aar软件
3,复制这些com组件dll到一个名字为英文(comdll)的文件夹里
4,手动regsvr32 这些个dll
5,调用上次写的aar的com组件查看演示程序 , 发现查看不到com里面的函数
6,复制这些个dll到系统的c:/windows/system32/目录下
7,再次手动注册这些个dll组件
halcon中match匹配的例子(ide版和vb6版)
相同功能的VB6版本代码如下: